<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <!-- Meta, title, CSS, favicons, etc. -->
    <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="文档管理">
<meta name="author" content="文档管理">
<title>JAVA 编码规范 文档管理</title>
<link href="./assets/css/bootstrap.min.css" rel="stylesheet">
<!-- Documentation extras -->
<link href="./assets/css/docs.css" rel="stylesheet">
<link href="./assets/css/style.css" rel="stylesheet">
<link href="http://cdn.bootcss.com/highlight.js/7.3/styles/github.min.css" rel="stylesheet">
<style>
body{font-family:"ff-tisa-web-pro-1","ff-tisa-web-pro-2","Lucida Grande","Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","WenQuanYi Micro Hei",sans-serif;}
h1, .h1, h2, .h2, h3, .h3, h4, .h4, .lead {font-family:"ff-tisa-web-pro-1","ff-tisa-web-pro-2","Lucida Grande","Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;}
pre code { background: transparent; }
@media (min-width: 768px) {
    .bs-docs-home .bs-social, 
    .bs-docs-home .bs-masthead-links {
      margin-left: 0;
    }
}
.bs-docs-section p {
	line-height: 2;
}
.bs-docs-section p.lead {
	line-height: 1.4;
}
</style>
<!--[if lt IE 9]><script src="../docs-assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
  <script src="http://cdn.bootcss.com/html5shiv/3.7.0/html5shiv.min.js"></script>
  <script src="http://cdn.bootcss.com/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<!-- Favicons -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../docs-assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="shortcut icon" href="../docs-assets/ico/favicon.png">
  </head>
  <body>
    <a class="sr-only" href="#content">Skip to main content</a>

    <!-- Docs master nav -->
    <header class="navbar navbar-inverse navbar-fixed-top bs-docs-nav" role="banner">
  <div class="container">
    <div class="navbar-header">
      <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a href="./overview.html" class="navbar-brand">文档管理</a>
    </div>
    <nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
      <ul class="nav navbar-nav">
       		<li  ><a href="overview.html">简介</a></li>
            <li ><a href="download.html">下载</a></li>
            <li ><a href="userguide.html">开发指南</a></li>
            <li ><a href="config.html">配置指南</a></li>
            <li ><a href="syntax.html">语法指南</a></li>
            <li ><a href="integrate.html">Web 框架集成</a></li>
            <!--
            <li ><a href="example.html">例子</a></li>
            -->
            <li ><a href="faq.html">FAQ</a></li>
            <li ><a href="about.html">关于</a></li>
      </ul>
    </nav>
  </div>
</header>
    <!-- Docs page layout -->
    <div class="bs-header" id="content">
      <div class="container">
        <h2>JAVA 编码规范</h2>
        <p></p>
      </div>
    </div>
	<a href="#top" id="toTop"></a>
    <!-- Callout for the old docs link -->
    <div class="container bs-docs-container">
      <div class="row">
        <div class="col-md-3">
          <div class="bs-sidebar hidden-print" role="complementary">
            <ul class="nav bs-sidenav">
            <li><a href="#x994372586">1 JAVA 编码规范 1.0 (jetbrick 版)</a></li>
            <li><a href="#x1893641216">&nbsp&nbsp1.1 Java 文件格式</a></li>
            <li><a href="#x680360">&nbsp&nbsp1.2 包名</a></li>
            <li><a href="#x1009394">&nbsp&nbsp1.3 类名</a></li>
            <li><a href="#x704276146">&nbsp&nbsp1.4 Imports</a></li>
            <li><a href="#x835132">&nbsp&nbsp1.5 方法</a></li>
            <li><a href="#x785047">&nbsp&nbsp1.6 常量</a></li>
            <li><a href="#x702711">&nbsp&nbsp1.7 变量</a></li>
            <li><a href="#x901602">&nbsp&nbsp1.8 注释</a></li>
            <li><a href="#x778102">&nbsp&nbsp1.9 异常</a></li>
            <li><a href="#x833170">&nbsp&nbsp1.10 日志</a></li>
            <li><a href="#x656426232">&nbsp&nbsp1.11 单元测试</a></li>
            </ul>
          </div>
        </div>
	        <div class="col-md-9" role="main">
	         <div class="bs-docs-section">
	           <h1 id="x994372586" class="page-header"><span>1 JAVA 编码规范 1.0 (jetbrick 版)</span></h1>
<h2 id="x1893641216" class="page-header"><span>1.1 Java 文件格式</span></h2> 
<ol> 
 <li>文件格式必须是 <code>UTF-8</code>，无 <code>BOM</code> 格式</li> 
 <li>文件回车换行符必须是 <code>Unix</code> 风格</li> 
 <li>每个文件结尾必须有一个空白行</li> 
 <li>行尾空白内容应该被 trim 掉</li> 
 <li><p>每个文件开头必须写上项目的标准 LICENSE 注释，如下：</p> 
  <div class="highlight">
   <pre><code class="language-html">/**
 * jetbrick-template
 * http://subchen.github.io/jetbrick-template/
 *
 * Copyright 2010-2013 Guoqiang Chen. All rights reserved.
 * Email: subchen@gmail.com
 *
 * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
</code></pre>
  </div></li> 
 <li><p>代码必须是格式化的，请使用统一的 Eclipse 的代码格式文件：<a href="download/eclipse-jetbrick-style-formatter.xml">eclipse-jetbrick-style-formatter.xml</a></p></li> 
 <li><p>不想被自动格式化的代码请用 <code>@formatter</code> 包裹，如：</p> 
  <div class="highlight">
   <pre><code class="language-html">//@formatter:off
private static final String[] DATE_PATTERNS = new String[] { 
    &quot;yyyy-MM-dd HH:mm:ss.SSS&quot;, 
    &quot;yyyy-MM-dd HH:mm:ss&quot;, 
    &quot;yyyy-MM-dd&quot;, 
    &quot;HH:mm:ss&quot;
};
//@formatter:on
</code></pre>
  </div></li> 
 <li>Java 文件必须是可编译的，不应该有任何的 <code>warning</code> 存在</li> 
</ol>
<h2 id="x680360" class="page-header"><span>1.2 包名</span></h2> 
<ol> 
 <li>包名必须是全部小写的，最好用一个单词表示</li> 
 <li>包名必须以 <code>jetbrick</code> 开头</li> 
 <li>接口或者抽象类的多种实现，推荐以 <code>spi</code>, <code>support</code> 包命名</li> 
</ol>
<h2 id="x1009394" class="page-header"><span>1.3 类名</span></h2> 
<ol> 
 <li>类名必须首字母大写，驼峰命名法： 如 <code>UserInfo</code>，<code>ClassUtils</code></li> 
 <li>类名尽量不要缩写，如果缩写，必须为特别常用的缩写</li> 
 <li>接口的命名不要以 <code>I</code> 开头</li> 
 <li>抽象类推荐以 <code>Abstract</code> 开头</li> 
 <li>接口的默认实现推荐以 <code>Default</code> 开头或者 <code>Impl</code> 结尾</li> 
 <li>每个 Class 都需要标注 <code>@auther</code>, <code>@since</code></li> 
 <li>每个 Class 都应该有简短的注释</li> 
</ol>
<h2 id="x704276146" class="page-header"><span>1.4 Imports</span></h2> 
<ol> 
 <li>Imports 间不要有空行</li> 
 <li>超过 3 个相同包下面的 Class 需要使用 <code>.*</code> 代替</li> 
 <li>不要使用 <code>import static</code>, 除了 <code>JUnit</code> / <code>TestNG</code> 的 <code>assertXXX</code> 方法</li> 
</ol>
<h2 id="x835132" class="page-header"><span>1.5 方法</span></h2> 
<ol> 
 <li>方法名称应该采用首字母小写，驼峰命名法： 如 <code>getUser</code>，<code>lookupClass</code></li> 
 <li>对于一个 <code>public</code> 的方法，都应该对参数进行基本的校验，比如 <code>null</code> 检测</li> 
 <li>对外开放 API 的 <code>public</code> 方法都需要标注 <code>@since</code></li> 
 <li>每个 <code>public</code> 方法都应该有简短的注释</li> 
</ol>
<h2 id="x785047" class="page-header"><span>1.6 常量</span></h2> 
<ol> 
 <li>常量必须是全大写，并用 <code>_</code> 分隔，如 <code>MAX_INTEGER</code></li> 
 <li>常量必须是 <code>static</code> <code>final</code></li> 
</ol>
<h2 id="x702711" class="page-header"><span>1.7 变量</span></h2> 
<ol> 
 <li>变量名称必须首字母小写，驼峰命名法</li> 
 <li>变量名尽量使用缩写，以简短为主</li> 
 <li>不要用拼音，要用英文表示</li> 
 <li>如果是集合或数组，用复数名词，或者添加 <code>List</code>, <code>Map</code> 等后缀</li> 
</ol>
<h2 id="x901602" class="page-header"><span>1.8 注释</span></h2> 
<ol> 
 <li>注释必须和代码保持一致，中文/英文均可</li> 
 <li>注释中的第一个句子要以（英文）句号、问号或者感叹号结束。 <code>javadoc</code> 工具会将注释中的第一个句子放在方法汇总表和索引中。</li> 
 <li>如果注释中有超过一个段落，用 <code>&lt;p&gt;</code> 标签分隔</li> 
 <li>如果注释中有多个章节，用 <code>&lt;h2&gt;</code> 标签声明每个章节的标题</li> 
 <li>示例代码以 <code>&lt;pre&gt;</code> 包裹</li> 
</ol>
<h2 id="x778102" class="page-header"><span>1.9 异常</span></h2> 
<ol> 
 <li>异常类名必须以 <code>Exception</code> 结尾</li> 
 <li>所有自定义异常都必须继承自 <code>RuntimeException</code></li> 
 <li>方法尽量不要抛出非 <code>RuntimeException</code> 异常</li> 
 <li>异常应该和主要的 Class 放在一起，而不是所有的异常类放在一个包下面</li> 
 <li>异常描述应该使用英文句子，尽量不要用中文。</li> 
 <li>被 <code>catch</code> 住的 <code>Exception</code>，必须要处理，或者重新抛出</li> 
</ol>
<h2 id="x833170" class="page-header"><span>1.10 日志</span></h2> 
<ol> 
 <li>日志框架使用 <code>slf4j</code></li> 
 <li>实例不多的对象类，不要使用 <code>static</code> 声明 <code>log</code></li> 
 <li>尽量使用 <code>debug</code> 而不是 <code>info</code> 级别</li> 
 <li>启动时候需要输出的重要日志，请用 <code>info</code> 级别</li> 
 <li>被 <code>catch</code> 住的 <code>Exception</code>，应该被打印出来 <code>log.error(e)</code></li> 
</ol>
<h2 id="x656426232" class="page-header"><span>1.11 单元测试</span></h2> 
<ol> 
 <li>单元测试框架用 <code>TestNG</code></li> 
 <li>单元测试覆盖率工具用 <code>EclEmma</code></li> 
 <li>Mock 框架使用 <code>Mockito</code></li> 
 <li>尽可能为每个方法提供单元测试</li> 
 <li>覆盖率应该不低于 70%</li> 
</ol>
           	</div>
           </div>
		</div> 
 	</div>
    <!-- Footer
    ================================================== -->
    <footer class="bs-footer" role="contentinfo">
      <div class="container">
        <ul class="footer-links">
          <li>当前版本： v0.0.3</li>
          <li class="muted">&middot;</li>
          <li><a href="http://v2.bootcss.com/">Bootstrap 2.3.2 中文文档</a></li>
          <li class="muted">&middot;</li>
          <li><a href="http://www.bootcss.com">Bootstrap中文网</a></li>
          <li class="muted">&middot;</li>
          <li><a href="http://blog.getbootstrap.com">官方博客</a></li>
          <li class="muted">&middot;</li>
          <li><a href="https://github.com/twbs/bootstrap/issues?state=open">Issues</a></li>
          <li class="muted">&middot;</li>
          <li><a href="https://github.com/twbs/bootstrap/releases">Releases</a></li>
        </ul>
      </div>
    </footer>

    <!-- JS and analytics only. -->
<script src="http://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<script src="./assets/js/bootstrap.js"></script>
<script src="http://cdn.bootcss.com/holder/2.0/holder.min.js"></script>
<script src="http://cdn.bootcss.com/highlight.js/7.3/highlight.min.js"></script>
<script >hljs.initHighlightingOnLoad();</script>
<script src="./assets/js/application.js"></script>
<script src="./assets/js/jquery.scrollToTop.min.js"></script>
<script text="javascript/text">
	$(document).ready(function(){
		$("#toTop").scrollToTop(1000);
  		$("table").addClass("table table-bordered");
  	});
</script>
  </body>
</html>
